home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS01.ADF / ABasicStuff / Graphics / Sphere.bas < prev    next >
BASIC Source File  |  1985-12-08  |  2KB  |  46 lines

  1. 10    '  ****  Spheres  ****
  2. 20    '  **  From ANALOG magazine  **
  3. 30    '  **  Translated from the Atari  **
  4. 40    '  **  by David Milligan, 70707,2521  11/2/85 **
  5. 50    '
  6. 60    '  ***  Draws multicoloured spheres of random
  7. 70    '  ***  sizes at random locations on the screen,
  8. 80    '  ***  endlessly, with a brief pause between
  9. 90    '  ***  spheres. Click left mouse button to exit.
  10. 100   '
  11. 110   ask window wid%,hi%:if wid%<600 then 130
  12. 120   screen 0,4,0
  13. 130   rgb 0,0,0,0:rgb 15,0,0,0
  14. 140   rgb 3,15,6,0:rgb 9,0,0,15
  15. 150   rgb 10,3,6,15:rgb 11,7,7,15
  16. 160   rgb 12,12,0,14:rgb 13,15,2,14
  17. 170   window #1,0,0,320,200,"Spheres"
  18. 180   cmd 1:graphic(1):scnclr
  19. 190   colr=2:randomize -1
  20. 200   size=90:cx=160:cy=96:time=1:deg=pi/180
  21. 210   pena colr
  22. 220   draw(cx+size,cy)
  23. 230   for y=90 to 0 step -6
  24. 240   colr=colr+1:if colr=15 then colr=2
  25. 250   pena colr
  26. 260   for x=0 to 360 step 10
  27. 270   if time=1 then goto 280 else goto 300
  28. 280   x2=cx+size*cos(x*deg):goto 290
  29. 290   y2=cy-(size*sin(x*deg)*sin(y*deg)):goto 310
  30. 300   x2=cx-(size*sin(x*deg)*sin(y*deg)):y2=cy+size*cos(x*deg)
  31. 310   draw(to x2,y2)
  32. 320   ask mouse x%,y%,b%:if b%<>0 then 450
  33. 330   next x:next y
  34. 340   time =time+1:if time=2 then draw(cx,cy+size):goto 230
  35. 350   size=20+rnd(1)*38:cx=size+1+(rnd(1)*(318-(size*2)))
  36. 360   cy=size+1+(rnd(1)*(190-(size*2)))
  37. 370   gosub 420:time=1:goto 220
  38. 380   pena 0 :for x=0 to 90 step 0.5
  39. 390   x2=size*cos(x*deg):y2=size*sin(x*deg)
  40. 400   draw(cx+x2,cy+y2 to cx-x2,cy+y2):draw(cx+x2,cy-y2 to cx-x2,cy-y2)
  41. 410   next x:pena colr:return
  42. 420   for i=0 to 500:ask mouse x%,y%,b%
  43. 430   if b%<>0 then 450
  44. 440   next i:goto 380
  45. 450   scnclr:close 1:rgb 0,6,9,15:rgb 15,11,11,11
  46.